package com.gopay.common.domain.pg;

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Entity: 网关 P2P交易 P2P签约流水表
 */
@Entity
@Table(name = "PG_GSRT_FORMALITIES_TRANS_DTL")
public class PgGsrtFormalitiesTransDtl implements java.io.Serializable {

    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/** 
     * 交易流水号
     */
    private Long transDtlSq;

    /** 
     * 商户编号
     */
    private String merId;

    /** 
     * 商户订单号
     */
    private String merOrderId;

    /** 
     * 商户接口交易码
     */
    private String merTxnCd;

    /** 
     * 商户交易时间
     */
    private Date merTxnTm;

    /** 
     * 国付宝交易时间
     */
    private Date gopayTxnTm;

    /** 
     * 订单国付宝服务器时间戳
     */
    private Date gopayServerTime;

    /** 
     * 网关版本号
     */
    private String gatewayVersion;

    /** 
     * 字符集1 GBK 2 UTF-8
     */
    private String charset;

    /** 
     * 语言 1 ZH 2 EN 暂不使用
     */
    private String language;

    /** 
     * 签名算法类型 1 MD5 2 SHA
     */
    private String signType;

    /** 
     * 订单处理响应码 0000-交易成功 4444-交易失败 9999-交易处理中
     */
    private String rspCode;

    /** 
     * 交易发起IP
     */
    private String transLaunchIp;

    /** 
     * 系统备注
     */
    private String sysRemark;

    /** 
     * 创建时间
     */
    private Date createdTs;

    /** 
     * 记录最后修改时间
     */
    private Date lastUpdTs;

    /** 
     * 最后修改交易码
     */
    private String lastUpdTrancode;

    /** 
     * P2P平台前台通知地址
     */
    private String merNotifyFrontUrl;

    /** 
     * P2P平台后台通知地址
     */
    private String merNotifyServerUrl;

    /** 
     * 商户平台的客户ID
     */
    private String merUserId;

    /** 
     * 客户名
     */
    private String userId;

    /** 
     * 姓名
     */
    private String name;

    /** 
     * 性别 M-男 F-女
     */
    private String sex;

    /** 
     * 所在地 CN-中国大陆 HK-香港 MO-澳门 TW-台湾
     */
    private String area;

    /** 
     * 证件类型 01-身份证 05-港澳居民往来内地通行证 06-台湾居民往来内地通行证
     */
    private String certType;

    /** 
     * 证件号码
     */
    private String certNo;

    /** 
     * 常用地址
     */
    private String address;

    /** 
     * 职业 01 - 在校学生 02 - 公司员工 03 - 自由职业者 04 - 待业 05 - 退休 06 - 其他
     */
    private String job;

    /** 
     * P2P平台托管账号
     */
    private String trustAcct;

    /** 
     * 证件有效期YYYYMMDD;YYYYMMDD
     */
    private String certValDate;

    public PgGsrtFormalitiesTransDtl() {
    }

  

    public PgGsrtFormalitiesTransDtl(Long transDtlSq, String merId, String merOrderId, String merTxnCd, Date merTxnTm,
			Date gopayTxnTm, Date gopayServerTime, String gatewayVersion, String charset, String language,
			String signType, String rspCode, String transLaunchIp, String sysRemark, Date createdTs, Date lastUpdTs,
			String lastUpdTrancode, String merNotifyFrontUrl, String merNotifyServerUrl, String merUserId,
			String userId, String name, String sex, String area, String certType, String certNo, String address,
			String job, String trustAcct, String certValDate) {
		super();
		this.transDtlSq = transDtlSq;
		this.merId = merId;
		this.merOrderId = merOrderId;
		this.merTxnCd = merTxnCd;
		this.merTxnTm = merTxnTm;
		this.gopayTxnTm = gopayTxnTm;
		this.gopayServerTime = gopayServerTime;
		this.gatewayVersion = gatewayVersion;
		this.charset = charset;
		this.language = language;
		this.signType = signType;
		this.rspCode = rspCode;
		this.transLaunchIp = transLaunchIp;
		this.sysRemark = sysRemark;
		this.createdTs = createdTs;
		this.lastUpdTs = lastUpdTs;
		this.lastUpdTrancode = lastUpdTrancode;
		this.merNotifyFrontUrl = merNotifyFrontUrl;
		this.merNotifyServerUrl = merNotifyServerUrl;
		this.merUserId = merUserId;
		this.userId = userId;
		this.name = name;
		this.sex = sex;
		this.area = area;
		this.certType = certType;
		this.certNo = certNo;
		this.address = address;
		this.job = job;
		this.trustAcct = trustAcct;
		this.certValDate = certValDate;
	}



	@Id
    @SequenceGenerator(name = "PgGsrtFormalitiesTransDtlSequence", sequenceName = "PG_GSRT_FORMALITIES_TRANS_DTL_SEQ")
    @GeneratedValue(generator = "PgGsrtFormalitiesTransDtlSequence", strategy = GenerationType.SEQUENCE)
    @Column(name = "TRANS_DTL_SQ", unique = true, nullable = false, precision = 22, scale = 0)
    public Long getTransDtlSq() {
        return this.transDtlSq;
    }

    public void setTransDtlSq(Long transDtlSq) {
        this.transDtlSq = transDtlSq;
    }

    @Column(name = "MER_ID", nullable = false, length = 10)
    public String getMerId() {
        return this.merId;
    }

    public void setMerId(String merId) {
        this.merId = merId;
    }

    @Column(name = "MER_ORDER_ID", nullable = false, length = 30)
    public String getMerOrderId() {
        return this.merOrderId;
    }

    public void setMerOrderId(String merOrderId) {
        this.merOrderId = merOrderId;
    }

    @Column(name = "MER_TXN_CD", nullable = false, length = 10)
    public String getMerTxnCd() {
        return this.merTxnCd;
    }

    public void setMerTxnCd(String merTxnCd) {
        this.merTxnCd = merTxnCd;
    }

    @Column(name = "MER_TXN_TM", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    public Date getMerTxnTm() {
        return this.merTxnTm;
    }

    public void setMerTxnTm(Date merTxnTm) {
        this.merTxnTm = merTxnTm;
    }

    @Column(name = "GOPAY_TXN_TM", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    public Date getGopayTxnTm() {
        return this.gopayTxnTm;
    }

    public void setGopayTxnTm(Date gopayTxnTm) {
        this.gopayTxnTm = gopayTxnTm;
    }

    @Column(name = "GOPAY_SERVER_TIME")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getGopayServerTime() {
        return this.gopayServerTime;
    }

    public void setGopayServerTime(Date gopayServerTime) {
        this.gopayServerTime = gopayServerTime;
    }

    @Column(name = "GATEWAY_VERSION", nullable = false, length = 5)
    public String getGatewayVersion() {
        return this.gatewayVersion;
    }

    public void setGatewayVersion(String gatewayVersion) {
        this.gatewayVersion = gatewayVersion;
    }

    @Column(name = "CHARSET", length = 1)
    public String getCharset() {
        return this.charset;
    }

    public void setCharset(String charset) {
        this.charset = charset;
    }

    @Column(name = "LANGUAGE", length = 1)
    public String getLanguage() {
        return this.language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    @Column(name = "SIGN_TYPE", length = 1)
    public String getSignType() {
        return this.signType;
    }

    public void setSignType(String signType) {
        this.signType = signType;
    }

    @Column(name = "RSP_CODE", nullable = false, length = 4)
    public String getRspCode() {
        return this.rspCode;
    }

    public void setRspCode(String rspCode) {
        this.rspCode = rspCode;
    }

    @Column(name = "TRANS_LAUNCH_IP", nullable = false, length = 50)
    public String getTransLaunchIp() {
        return this.transLaunchIp;
    }

    public void setTransLaunchIp(String transLaunchIp) {
        this.transLaunchIp = transLaunchIp;
    }

    @Column(name = "SYS_REMARK", length = 200)
    public String getSysRemark() {
        return this.sysRemark;
    }

    public void setSysRemark(String sysRemark) {
        this.sysRemark = sysRemark;
    }

    @Column(name = "CREATED_TS", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    public Date getCreatedTs() {
        return this.createdTs;
    }

    public void setCreatedTs(Date createdTs) {
        this.createdTs = createdTs;
    }

    @Column(name = "LAST_UPD_TS", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    public Date getLastUpdTs() {
        return this.lastUpdTs;
    }

    public void setLastUpdTs(Date lastUpdTs) {
        this.lastUpdTs = lastUpdTs;
    }

    @Column(name = "LAST_UPD_TRANCODE", length = 6)
    public String getLastUpdTrancode() {
        return this.lastUpdTrancode;
    }

    public void setLastUpdTrancode(String lastUpdTrancode) {
        this.lastUpdTrancode = lastUpdTrancode;
    }

    @Column(name = "MER_NOTIFY_FRONT_URL", nullable = false, length = 500)
    public String getMerNotifyFrontUrl() {
        return this.merNotifyFrontUrl;
    }

    public void setMerNotifyFrontUrl(String merNotifyFrontUrl) {
        this.merNotifyFrontUrl = merNotifyFrontUrl;
    }

    @Column(name = "MER_NOTIFY_SERVER_URL", nullable = false, length = 500)
    public String getMerNotifyServerUrl() {
        return this.merNotifyServerUrl;
    }

    public void setMerNotifyServerUrl(String merNotifyServerUrl) {
        this.merNotifyServerUrl = merNotifyServerUrl;
    }

    @Column(name = "MER_USER_ID", nullable = false, length = 30)
    public String getMerUserId() {
        return this.merUserId;
    }

    public void setMerUserId(String merUserId) {
        this.merUserId = merUserId;
    }

    @Column(name = "USER_ID", nullable = false, length = 60)
    public String getUserId() {
        return this.userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    @Column(name = "NAME", nullable = false, length = 30)
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Column(name = "SEX", length = 1)
    public String getSex() {
        return this.sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Column(name = "AREA", nullable = false, length = 2)
    public String getArea() {
        return this.area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    @Column(name = "CERT_TYPE", nullable = false, length = 2)
    public String getCertType() {
        return this.certType;
    }

    public void setCertType(String certType) {
        this.certType = certType;
    }

    @Column(name = "CERT_NO", nullable = false, length = 30)
    public String getCertNo() {
        return this.certNo;
    }

    public void setCertNo(String certNo) {
        this.certNo = certNo;
    }

    @Column(name = "ADDRESS", length = 100)
    public String getAddress() {
        return this.address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Column(name = "JOB", length = 2)
    public String getJob() {
        return this.job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    @Column(name = "TRUST_ACCT", nullable = false, length = 19)
    public String getTrustAcct() {
        return this.trustAcct;
    }

    public void setTrustAcct(String trustAcct) {
        this.trustAcct = trustAcct;
    }

    @Column(name = "CERT_VAL_DATE", length = 17)
    public String getCertValDate() {
        return this.certValDate;
    }

    public void setCertValDate(String certValDate) {
        this.certValDate = certValDate;
    }

}
